﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;


namespace Dune2013
{
    public class StaticStuff
    {

        //Velocidad/Rapidez
        public static float rapidezRecolector = 1.5f;
        public static float rapidezHelicoptero = 2.0f;
        public static float rapidezProtector = 1.0f;

        public static float maxTurnSpeedRecolector = MathHelper.Pi / 30;
        public static float maxTurnSpeedHelicoptero = MathHelper.Pi / 10;
        
        public static int maxVidaRecolector= 20;
        public static int danioHelicoptero = 2;

        //Nodo Stuff
        public static int CantNodoX = 13;
        public static int CantNodoY = 10;
        public static int TamNodoX = 60;
        public static int TamNodoY = 60;
        public static float nodeScale = 3.3f;
        public static int baseX = 2, baseY = 2, stationX = 10, stationY = 7;

        //Petroleo
        public static int maxCargaPetroleo = 1000;
        public static int minCargaPetroleo = 500;


        //Tiempos
        public static int velocidadExtraccionPetroleo= 1;
        public static float velocidadAlmacenamientoPetroleo= 1f;
        public static float velocidadCargaNafta = 1f;
        public static float velocidadGastoNafta = 1f;
        public static float tiempoRecargaCombustible= 10f;
        public static int tiempoEntreHelicopteros = 3000;
        public static float tiempoTotalConstruccionPozo = 3000f;


        //CantidadesMaximas
        public static int cantidadMaximaHelicopteros = 10;
        public static int cantidadMaximaMinasPetroleo = 3;
        public static int cantidadMaximaObstaculos = 10;

        //Texto
        public static string naftaRestanteFont = "ArialFont";
        public static Vector2 naftaRestantePosition = new Vector2(500, 560);
        public static Color naftaRestanteColor = Color.Black;
        public static Vector2 distDTxNRAHP = new Vector2(0, 20);//distancia desde texto de nafta restante a HP del recolector

        public enum tiposTexturas{
            NADA,
            HELICOPTERO,
            RECOLECTOR,
            PROTECTOR,
            POZO_SIMPLE,
            POZO_CONSTRUYENDOSE,
            POZO_CONSTRUIDO,
            POZO_VACIO,
            BASE,
            ESTACION,
            OBSTACULO
        };
        private static ContentManager Content;
        public static void initialice(ContentManager C) {
            Content = C;
        }
        public static Texture2D getTextureById(tiposTexturas type) {
            switch (type)
            {
                case tiposTexturas.NADA:
                    return Content.Load<Texture2D>("sand");
                case tiposTexturas.HELICOPTERO:
                    return Content.Load<Texture2D>("HELICOPTERO");
                    //return Content.Load<Texture2D>("Farmer");

                case tiposTexturas.RECOLECTOR:
                    return Content.Load<Texture2D>("RECOLECTOR");

                case tiposTexturas.PROTECTOR:
                    return Content.Load<Texture2D>("PROTECTOR");

                case tiposTexturas.POZO_SIMPLE:
                    return Content.Load<Texture2D>("PozoSimple");

                case tiposTexturas.POZO_CONSTRUIDO:
                    return Content.Load<Texture2D>("PozoPetrolifero");

                case tiposTexturas.POZO_CONSTRUYENDOSE:
                    return Content.Load<Texture2D>("PozoConstruyendose");

                case tiposTexturas.POZO_VACIO:
                    return Content.Load<Texture2D>("PozoVacio");

                case tiposTexturas.BASE:
                    return Content.Load<Texture2D>("Casa");

                case tiposTexturas.ESTACION:
                    return Content.Load<Texture2D>("Estacion");

                case tiposTexturas.OBSTACULO:
                    return Content.Load<Texture2D>("Obstaculo");
            }
            return null;
        }
    }
}
